package com.ccb.sc.common.modules.order.service;

import com.ccb.sc.common.modules.common.vo.QueryTrackResp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ccb.sc.common.modules.order.entity.Order;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author ken
 * @since 2020-09-25
 */
public interface IOrderService extends IService<Order> {

    /**
     * 取消订单
     * @param orderId 订单id
     */
    void cancel(String orderId);

    /**
     * 确认收货
     * @param orderId 订单id
     */
    void confirmReceive(String orderId);

    /**
     * 自动默认好评
     * @param orderId 订单id
     */
    void comment(String orderId);

    /**
     * 订单完成
     * @param orderId 订单id
     */
    void finish(String orderId);

    /**
     * 发货
     * @param orderId 订单id
     * @param logisticsCompany 物流公司
     * @param logisticsNo 物流编号
     */
    void deliver(String orderId, String logisticsCompany, String logisticsNo);

    /**
     * 更新物流信息
     * @param orderId 订单id
     * @param logisticsCompany 物流公司
     * @param logisticsNo 物流编号
     */
    void deliverUpdate(String orderId, String logisticsCompany, String logisticsNo);

    /**
     * 查找订单物流信息
     * @param orderId 订单id
     * @return QueryTrackResp
     */
    QueryTrackResp orderTrace(String orderId);

    /**
     * 取消团购
     * @param grouponLogId 团购记录ID
     * @param orderId 订单ID
     */
    void cancelGroupon(Long grouponLogId, String orderId);
}
